package com.bbva.kyfb.kyfbdaofcimpl;

import java.util.List;

import org.springframework.stereotype.Component;

import com.bbva.jee.arq.spring.core.gce.ExcepcionEjecucionAplicacion;
import com.bbva.kyfb.kyfbdaofc.IHistoricoDao;
import com.bbva.kyfb.kyfbdto.firmas.filtros.FiltroFicheros;
import com.bbva.kyfb.kyfbjpatlbh.dominiotlbh.Ttlsbfua;

/**
 * The Class ServicioHistoricoDaoImpl.
 *
 * @author xe20973
 */
@Component(value="servicioHistoricoDao")
public class ServicioHistoricoDaoImpl extends ServicioDaoImpl implements IHistoricoDao
{

	/** The Constant ESTADOS_FIJOS. */
	private static final String[] ESTADOS_FIJOS_HISTORICO = new String[]{"EN","HO","RE","EL","BM","BD","PE"};	//"RE", "RF","HO", "EL", "PF", "FP", "PA", "RA"};
	/** The Constant ESTADOS_FIJOS. */
	private static final String[] ESTADOS_FIJOS_AUDITORIA = new String[]{"004", "022", "023", "999", "995", "997", "998", "021"};	
	
	/**
	 * {@inheritDoc}
	 */
	@Override
	public List<Ttlsbfua> findAuditoriaComponenteHistorico(final String codClienteCash, final String claseOrden, final String idOrden,  final String [] estados) throws ExcepcionEjecucionAplicacion {
		return findAuditoriaComponente(codClienteCash, claseOrden, idOrden, estados, ESTADOS_FIJOS_AUDITORIA);
	}

	/**
	 * {@inheritDoc}
	 */
	@Override
	public List<Object[]> findHistoricoReferencia(final String codClienteCash, final FiltroFicheros filtro, final Long[] numItems, final boolean ordenante)throws ExcepcionEjecucionAplicacion {		
		return findReferencia(codClienteCash, filtro, ordenante, ESTADOS_FIJOS_HISTORICO, numItems, false); 
	}
	
	/**
	 * {@inheritDoc}
	 */
	@Override
	public List<Object[]> findHistoricoReferenciaEstadosIntermedios(final String codClienteCash, final FiltroFicheros filtro, final boolean ordenante)throws ExcepcionEjecucionAplicacion {
		return findReferenciaEstadosIntermedios(codClienteCash, filtro, ordenante, false); 
	}	

}
